import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
	  //商品列表数据
	  shoplist: [
	  		  { 'id': 1, 'title': '电水壶', 'price': 50.01, src: '/images/1.jpg' },
	  		  { 'id': 2, 'title': '电压力锅', 'price': 260.99, src: '/images/2.jpg' },
	  		  { 'id': 3, 'title': '电饭煲', 'price': 200.99, src: '/images/3.jpg' },
	  		  { 'id': 4, 'title': '电磁炉', 'price': 300.99, src: '/images/4.jpg' },
	  		  { 'id': 5, 'title': '微波炉', 'price': 400.99, src: '/images/5.jpg' },
	  		  { 'id': 6, 'title': '电饼铛', 'price': 200.99, src: '/images/6.jpg' },
	  		  { 'id': 7, 'title': '豆浆机', 'price': 199.99, src: '/images/7.jpg' },
	  		  { 'id': 8, 'title': '多用途锅', 'price': 510.99, src: '/images/8.jpg' }
	  		],
		//购物车数据
		shopcart:[]
  },
  //getters可以对state里面的数据进行简单的计算或者过滤
  getters: {
	 //计算总价
	 totalPrice(state){
		 return state.shopcart.reduce(function(total,item){
			 return total += item.price * item.num;
		 },0)
	 }
  },
  mutations: {
	  //添加购物车
	 add(state,item){//mutation会接受state作为第一个参数
		//查找shopcart里面是否已有添加的这个商品
		 var first = state.shopcart.find(i => i.id == item.id)
		 if(first){
			 first.num++;
		 }else{
			 state.shopcart.push({
				 id: item.id,
				 title: item.title,
				 price: item.price,
				 src: item.src,
				 num:1
			 })
		 }
	 },
	 //删除购物车
	 del(state,item){
		 state.shopcart.forEach(function(i,index,arr){
			 if(i.id == item.id){
				 arr.solice(index,1);
			 }
		 })
	 }
  },
  actions: {
  },
  modules: {
  }
})
